The present invention relates to electronic data processing, and specifically concerns an improved data processor for pattern recognition and similar functions.
Present-day commercial machines for recognizing printed characters and other patterns are almost invariably implemented in the form of hard-wired logic. General-purpose computers have been employed for many years for experimental and low-volume recognition, such as the design and simulation of character-recognition algorithms and the analysis of spacecraft photographs. The implementation of recognition functions in software form has many advantages: algorithms may be modified or replaced easily; the same hardware may be used for several different functions, to minimize idle time; and the hardware and software are separately diagnosable, to name only a few. These advantages of course also apply to areas other than pattern recognition, and there is presently a trend toward the implementation of many different types of previously hard-wired functions in small, programmed data processors.
The major obstacle to the use of software recognition techniques in a commercial environment is speed. Since the circuits in a hard-wired machine can operate in parallel, presently available OCR (optical character recognition) and MICR (magnetic-ink character recognition) machines are capable of processing a thousand or more characters per second. Execution of the same algorithms on a conventional general-purpose computer, however, would lower this rate to the range of ten to one hundred per second. Careful and ingenious programming will increase this rate to some extent, but at the expense of greatly increased design time and at the limitation to a small number of efficiently codable recognition techniques. The addition of special-purpose recognition micro-instructions for a general-purpose computer has also been proposed. This system is shown in co-owned U.S. patent application Ser. No. 95,676. While it achieves speeds generally comparable to those of hardware-oriented recognition system, it requires micro-instruction storage space which is always at a premium, it must be made less efficient in order to conform to architectural standards defined for other purposes, and it is limited to the implementation of a specific type of recognition algorithm.
What is required, then, is a "general-purpose" special-purpose recognition processor: a data processor which is special-purpose in that it is optimized to perform recognition and allied functions efficiently, yet which is general-purpose in that it is capable of implementing a wide range of recognition algorithms plus a member of other tasks, such as machine control, data management, and so forth.